package reflect;

import java.io.FileReader;

/**
 * 关于文件路径问题:
 * idea中的工程移植之后使用其它工具打开编译不通过等问题。
 *
 * 怎样获取工程中的一个文件的绝对路径？
 * 把文件全部放到src目录下。(一定一定要放到src目录下！！！！)
 */
public class AboutPath {
    public static void main(String[] args) throws Exception {
        // 这种方式路径的缺点是: 移植性差，在IDEA中默认的当前路径是project的根。
        // 这个代码假设离开了IDEA，换到其它位置，可能当前路径就不是project的根了，此时这个路径就无效了。
        FileReader fileReader = new FileReader("Reflect/classinfo.properties");

        // 推荐:
        // 前提:这个文件必须在类路径下。
        // 什么是类路径下?
        // 凡是在src目录下的都是类路径下。【谨记】
        // src是类的根路径
        /*
        解释:
                Thread.currentThread() 当前线程对象
                getContextClassLoader() 是线程对象的方法，可以获取到当前线程的类加载器对象。
                getResource() 这是类加载器对象的方法，当前线程的类加载器默认从类的根路径下加载资源。


         */
        // 采用以下代码可以拿到一个文件的绝对路径。
/*        String path = Thread.currentThread().getContextClassLoader()
                .getResource("classinfo2.properties").getPath();

        System.out.println(path);*/


        // 获取db.properties文件的绝对路径
        String path2 = Thread.currentThread().getContextClassLoader().getResource("bean/db.properties").getPath();
        System.out.println(path2);


    }
}
